package com.demo.java.b.for循环;

/**
 * @Program: java
 * @ClassName ArrayTest
 * @Author: liutao
 * @Description:
 * @Create: 2023-09-05 15:49
 * @Version 1.0
 **/


public class ArrayTest {

    public static void main(String[] args) {
        int[] num = {1, 2, 2, 3, 4, 2, 6};
        System.out.println("原数组：");
        for (int m : num) {
            System.out.print(m);
        }
        // 交换数组的数据
        int temp = 0;
        temp = num[1];
        num[1] = num[3];
        num[3] = temp;
        System.out.println("\n交换后：");
        for (int m : num) {
            System.out.print(m);
        }

        // 在倒数第二位插入一个数
        int[] newNum = new int[num.length + 1];
        // 方法1：while循环
        System.out.println("\nwhile循环方法：");
        for (int i : whileXx(num, newNum)) {
            System.out.print(i);
        }
        // 方法2：for循环
        System.out.println("\nfor循环方法：");
        for (int i : forXx(num, newNum)) {
            System.out.print(i);
        }

        for (int i = 0; i < forXx(num, newNum).length; i++) {
            System.out.println(forXx(num, newNum)[i]);
        }


    }

    /**
     * 在倒数第二个数插入一个新数
     **/
    public static int[] forXx(int[] num, int[] newNum) {
        // 复制原始数据到新数组
        for (int i = 0; i < num.length; i++) {
            newNum[i] = num[i];
        }
        // 把指定位置的中间加一条新数据
        for (int j = 0; j < newNum.length; j++) {
            if (j == newNum.length - 2) {
                newNum[j + 1] = newNum[j];
                newNum[j] = 100;
            }
        }
        return newNum;

    }

    /**
     * 在倒数第三个数插入一个新数
     **/
    public static int[] whileXx(int[] num, int[] newNum) {
        // 复制原始数据到新数组
        int i = 0;
        while (i < num.length) {
            newNum[i] = num[i];
            i++;
        }
        System.out.println("复制后的数组");
        for (int n : newNum) {
            System.out.print(n);
        }
        System.out.println();
        // 把指定位置的中间加一条新数据
        i = 0;
        while (i < newNum.length) {
            if (i == newNum.length - 3) {
                newNum[i + 2] = newNum[i + 1];
                newNum[i + 1] = newNum[i];
//                newNum[i] = 5;
            }
            i++;
        }
        return newNum;
    }
}
